/*
        Copyright (C) 2007  Aaron Defazio

        This program is free software; you can redistribute it and/or
        modify it under the terms of the GNU General Public License
        as published by the Free Software Foundation; either version 2
        of the License, or (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.

        You should have received a copy of the GNU General Public License
        along with this program; if not, write to the Free Software
        Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/
using System;
using System.Collections.Generic;
using System.Text;

namespace PluginInterface
{
    public interface IPlugin
    {
        string Name { get;}
        string Shortcut { get;}
        void ReIndex();
        List<RObject> DoQuery(string query);
        void Open(string key, string QueryTerm);
        void Initilise();
        void close();
    }

    public class RObject
    {
        private string _Key;
        private string _Name;
        private System.Drawing.Icon _RIcon;

        public string Key
        {
            get { return _Key; }
            set { _Key = value; }
        }
        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }
        public System.Drawing.Icon RIcon
        {
            get { return _RIcon; }
            set { _RIcon = value; }
        }

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="Key">not visible, unique key for opening item</param>
        /// <param name="Name">Name</param>
        /// <param name="Icon">Icon shown to user</param>
        public RObject(string Key, string Name, System.Drawing.Icon Icon) {
            _Key = Key;
            _Name = Name;
            _RIcon = Icon;
        }


    }

}
